Copyright: Wanga International
Citation: User Documentation


THE CUSTOMISER

Welcome to The Customiser Help File.  Please select one of the following options:

•	Introduction

•	The User Interface

•	Using The Customiser

•	Tips and Tricks

•	API Messages

•	Command Line Arguments


Introduction

The Customiser is a powerful and innovative product that allows you to interact with and manipulate all windows on your machine.  Windows, be they dialogs, scroll bars, buttons, check boxes or in fact any control, can be controlled directly by The Customiser.  Any changes you make in any application can be saved permanently

Have you ever wanted to:

•	Change the text on any window or button

•	Enable greyed out buttons

•	Move controls within a window

•	Interact directly with other applications

•	Determine hidden passwords

•	Find hidden buttons or other controls

The Customiser allows you to fully control windows in ways that normally only applications can.  Using The Customiser allows you to interact with all applications running on your machine through The Customisers’ innovative screens or utilising the Windows Application Programming Interface (API).

At the click of a button windows can be moved, enabled, disabled or hidden.  The text on any control can be changed.  Any application can be customised to appear the way you want.  Button clicks can be sent automatically to any window to automate repetitive processes.  All changes you make can apply just for this session or saved permanently.

You can use The Customiser to move resources in dialogs in real time.  Experience the power of The Customiser as you literally pick up buttons and move them.

After using this product for a while you’ll wonder how you worked productively without it.


The User Interface


Introduction

Each tab contains related operations that can be performed on any window.  The operations all act independantly of any others and can be safely combined.  For example you can change the size or position of a window as well as its text and also send a mouse click to it all at the same time.


Window Details

From this screen you select what window you want to edit.  Choose the ‘On’ button to activate the mouse and select the window of interest.  All the other screens now relate to this window.  If you make changes to any window and then select another window through this screen your existing settings will be saved for that window.  If you have previously made and saved changes to a window those changes are automatically displayed when you go to the appropriate screen.  You can always tell if you are editing an existing action you have created or creating a new one as the ‘Save Action’ will appear enabled if you are editing an existing action.  To remove any action you simply turn off ‘Save Action’, that action will be deleted automatically.

This screen displays the following information for any window you have currently selected to edit:

•	Class

•	Text

•	Text

•	Text

•	Handle

•	Id

•	Position

•	Height

•	Width

•	Cursor Position


Class

This is the class name of any window.  The class name varies according to the type of window and the tool used to build the application.  The class is determined by the compiler used to build the application.  For example, the Borland compiler uses ‘Button’ for buttons, ListBox for list boxes, etc.  Microsoft have a similar terminology for their resources.


Text

This is the text displayed in the Windows title bar (if it has one).  If the window is a button, checkbox or similar control the text of the control is displayed.


Parent Class

This is similar to the Class above but relates to the parent of this window.  For example, the parent window of a button is the screen that contains that button.


Parent Text

This is similar to the text of the control but relates to the parent of this control.  For example, the parent window of a button is the screen that contains that button.


Handle

The Handle is a unique identifier of the control.  It is used to interact directly with a control.  All messages are sent to a window via the Windows handle.  By utilising the handle any window can be manipulated in any way.


Id

The id is the resource identifier of the window.  This is used internally by the application that owns the window.


Position

The position is the (x, y) coordinates of the upper left corner of the window.  All coordinates are given in screen coordinates relative to the upper left corner of the screen which is (0,0).  It is possible for windows to have negative x or y coordinates if the top left corner of the window is to the left or above the visible screen.


Height

This is the height of the window and includes any title bars and borders (if present).  The height is given in screen units.  For example if a window is full screen and your resolution is 800 * 600 then the height would be 600.


Width

This is the width of the window and includes any scroll bars (if present).  The width is given in screen units.  For example if a window is full screen and your resolution is 800 * 600 then the width of that window is 800.


Cursor Position

The screen coordinates of the cursor's current position.


Size and Position

This screen allows you to change the size and position of the currently selected window.  The current size and position is displayed initially.  You can use the mouse to move a window by choosing ‘Drag Window’ and then clicking the left mouse button once you are over the currently selected window.  Choose ‘Turn Off Drag’ to end.  The new position of the window is automatically displayed as you drag.


Text

You can change the text that appears on any window by entering the new text to appear in the ‘New Text’ window.  You can also alter the shortcut by placing the ‘&’ in fromnt of the letter you want to use to select this window through the keyboard.  Note that the original text of the window is always displayed for your convenience.  When you change the text of any window you have three options for replacement; Replace, Prepend and Append.  These options take into account the text that is initailly displayed in the window. For example, if you choose Prepend the new text you enter will prepend the existing text.


Misc

Under this screen you can:

•	Send a mouse click to a window

•	Enable a window

•	Disable a window

•	Show a hidden window

•	Hide a visible window


API Message

This powerful feature is for users who have some understanding of the Windows Application Programming Interface (API). Even if you have no understanding of the Windows API example messages are given that will get you on your way.  Many API messages are very simple to use.

There are literally hundreds of messages that you can send and most of them require parameters.  To determine the parameters required you should consult your documentation on the Windows API.  See API Messages for a listing of the messages supported by The Customiser.  Generally messages require that you specify values in the WPARAM or LPARAM parameters.  The result of a message is often shown in the Result field.  Many messages also use the LPARAM parameter to display the results of a message.  A few of the more common messages are provided here for your convenience.  The Customiser supports literally hundreds of messages.  You can view all these messages by scrolling through the list provided in the Send Message screen of The Customiser.


Example Messages

Getting Text From Windows

Command:	WM_GETTEXT

Description:	Get the text displayed in any window.  The Customiser provides this option by default on its main screen.  To get the text from an edit control, send this message.

WPARAM:	Number of charcters to retrieve, must be positive and greater than 0.

LPARAM:	Text from window.

Result:	Number of characters returned.

Setting Text in a Window

Command:	WM_SETTEXT

Description:	Set the text displayed in any window.  Use the ‘&’ to define shortcut keys for any button, checkbox, etc.

WPARAM:	Not used.

LPARAM:	Text to set in window.

Result:	0 if fails, 1 if success.

Adding a string to a List Box

Command:	LB_ADDSTRING

Description:	Add a string to a list box

WPARAM:	Not used.

LPARAM:	Text to add to list box.

Result:	Index (0 based) of position the new item is placed in the list box.

Adding a string to a Combo Box

Command:	CB_ADDSTRING

Description:	Add a string to a combo box.  A combo box is similar to a list box except that it also contains an edit window.

WPARAM:	Not used.

LPARAM:	Text to add to combo box.

Result:	Index (0 based) of position the new item is placed in the combo box.

Getting a string from a Combo Box

Command:	CB_GETLBTEXT

Description:	Retrieves a particular string from a combo box.

WPARAM:	Index of item to retrieve.

LPARAM:	Text from combo box.

Result:	Number of characters in retrieved text.


Using The Customiser

When you start the Customiser the main configuration screen is displayed.  Here you can turn the Customiser on or off and set whether it stays on top.  There is also a visual indicator so you can readily see if The Customiser is running.  The Customiser must be running for any custom changes you make to other windows to take effect.  Genereally you will place The Customiser in your startup group and have it running in the background continuously.

Once The Customiser is running to make any changes to a window (edit a window ) choose the ‘Edit Window’ button.


Editing Windows

To edit existing actions for a window or create new ones choose the ‘Edit Window’ button.  This will bring up The Customiser configuration screens.  From these screens you are able to ‘customise’ the look and feel of any window from any application, including Windows itself.  To select the window you want to customise choose the ‘On’ button which activates the mouse in ‘Select Mode’.  You then simply move over the window you want to edit and click the left mouse button when the appropriate window is highlighted to select that window.

If you want to save any action for a window you must turn on the ‘Save Action’ option.  You then have the option to save permanently or for ‘This Session Only’.  This Session Only means that the changes will only be active whilst The Customiser is running.  If you exit The Customiser and start it up again you will have lost any changes made.

Another option when saving actions is ‘Match Parent Window’.  This option is only available if the window selected does indeed have a parent window.  Windows like buttons, check boxes, list boxes etc, all have parent windows.  The parent window is the window that the button, etc, is displayed within.  Details of the parent window are shown on the Details screen.  In most instances you will want to match the parent window.  For example, lets assume you are editing a window which is a button and has the text OK in it.  Many applications have such a button all over the place.  If you do not ‘Match the parent’ then any OK button will have the action you have created done on it.  If you match ther parent then just the OK button that has that parent will be acted on.  Rarely will you not want to ‘match parent window’.

Another option when saving actions is ‘Match Resource Id’.  Within any window if there are any buttons, checkboxes, etc these will have a unique Id within that window.  This option is on by default and genereally you will leave it on.  It provides extra security that the action you save will absolutely apply to only that button or control.  As in the previous example it can sometimes be difficult to distinguish buttons or controls as from one window to another you may have identical controls appearing.  Using this option with the previous option ‘Match Parent Window’ ensures your action will indeed act on this control.  You would turn this option Off when you want your action to apply to a whole category of controls wherever they may appear.

To edit another window simply return to the Details screen and choose the desired window in the same manner as before.  Any actions you have created for the previous window will be automatically saved.  You do not have to exit the Configuration screens  when changing windows.

The mouse can be placed into several modes within The Customiser.  You will normally just use ‘Select Mode’ but other modes can be chosen.  Note that to select a window for editing the mouse must be placed in ‘Select Mode’.

The mouse modes are configured by pressing the right mouse button.  Whilst the mouse is enabled within The Customiser you can gain access to the menu at any time by right-clicking.  If the mouse is not enabled then the cursor must be positioned over the The Customiser screen before you press the right mouse button.  Pressing the right mouse button brings up the mouse configuration menu.  This menu is separated into several sections.

The first section in the menu contains several options you can select that act as filters for all the mouse modes of The Customiser.  The filters are:

•	Exclude System Windows

•	Exclude User Defined

•	Exclude Hidden Windows

The next menu section contains the Modes that the mouse within The Customiser can be placed in.   You can also set the mode by selecting one of the mode options displayed next to the ‘On’ button on the ‘Details’ screen.  The various modes are:

•	Exclude Mode

•	Exclude Mode

•	Exclude Mode

•	Exclude Mode

•	Exclude Mode

•	Move Mode

•	Preview Mode

•	Preview Mode

In all modes information about particular windows is displayed as your mouse passes over them.

The mouse within The Customiser is not activated until you select ‘Activate Mouse’ from the menu or choose the ‘On’ button on the ‘Details’ screen.  The mouse is disabled in a similar fashion.


Modes

All mouse modes of The Customiser behave similarly in that as you pass your mouse over windows, whilst The Customiser is enabled, information specific to that window is displayed on the main The Customiser screen.  You can apply filters, however, to allow you to control what windows are considered by The Customiser.  The various modes of The Customiser are:

•	Enable Mode

•	Enable Mode

•	Enable Mode

•	Enable Mode

•	Exclude Mode

•	Move Mode

•	Preview Mode

•	Preview Mode


Enable Mode

In this mode when you click on a window that window is enabled.  If the window is already enabled then there will be no effect.


Disable Mode

In this mode when you click on a window that window is disabled. A disabled window is greyed out.  If the window is already disabled, or greyed, then there will be no effect.


Show Mode

In this mode when you click on a window that window is shown.  If the window is not already hidden then there will be no effect.


Hide Mode

In this mode when you click on a window that window is hidden.  If the window is already hidden then there will be no effect.


Exclude Mode

This mode permits you to build up a list of windows that you want The Customiser to exclude.  After enabling this option when you click on windows that The Customiser highlights you are adding that window to an internally maintained list of windows.  These details are maintained in a text file named EXCLUDE.LST.  By turning on the option ‘Exclude User Windows’ The Customiser will ignore the windows in this list.  This text file can be manually edited should you want to remove a window from the list.


Move Mode

By selecting Move Mode you are able to move any window in real time simply by clicking on it whilst The Customiser is enabled and then just moving the mouse.  The ‘captured’ window will move with you.  To stop moving the window just press the left mouse button again.  When you ‘capture’ a window for moving the cursor changes to indicate that you are in active move mode.


Preview Mode

As you pass the mouse cursor over hidden windows they are displayed until you move the mouse off the window or over another window.  Whilst in this mode if you press the left mouse button whilst a window is being ‘previewed’ this window is un-hidden or shown.  When you move off the window it will remain visible.


Select Mode

This mode is used to select windows for editing.  If you have mad chanfes to any other window when you select a window utilising this mode the changes to the previous window are automatically saved.


Filters

Filters allow you to control what windows are parsed by The Customiser as you move the cursor around the screen.  Filters can be applied exclusively or in combination.  The filters are:

•	Exclude System Windows

•	Exclude User Defined

•	Exclude Hidden Windows


Exclude System Windows

Selecting this option causes The Customiser to skip over Windows that are part of the Windows operating system.  Some example of these windows are windows concerned with the operating systems message handling, the task bar or the tray contained within the taskbar.

By default this option is not selected.  You can turn this option on to have The Customiser skip over those Windows that are part of the operating system.  For example, under Windows 95 the task bar is skipped when this option is on.


Exclude User Defined

The Customiser maintains a user definable list of windows that are ignored if you select this option.  The details of the windows are maintained in a text file named EXCLUDE.LST.  This is a standard text file that you can edit with any text editor.

The format of each line in this file is:

ClassName|WI|Window_Text|WI|Height|WI|Width|WI|

To remove windows from this list simply delete the appropriate line.  To add windows to this list, place The Customiser into Exclude Mode by selecting ‘Exclude Mode’ from the Options menu and then click on the window you want The Customiser to exclude from now on.  Note that whenever you are in Exclude Mode the windows contained in the text file will be ignored by The Customiser until you remove them from this file.  If you modify this file manually you have to re-start The Customiser for the changes to take effect.


Exclude Hidden Windows

This option instructs The Customiser to ignore all windows that are not visible.  This option is useful if you are not interested in interacting with those windows that are hidden.  You may find, for example, that hidden windows make it difficult for you to actually pin point the windows you are concerned with, which are visible.


Tips and Tricks

Following are a just a few uses you may find for The Customiser.

Skipping Un-wanted Windows

Discovering Passwords

Moving Controls

Retrieving Text from Owner Draw List Boxes

Enabling Greyed Buttons

Debug Invalid Short-Cut Keystrokes

Identify Windows Resource Ids

Minimise Borland Whilst Compiling


Skipping Un-wanted Windows

The Customiser is able to interact with EVERY window that is on your system.  Whilst you use The Customiser it may be distracting that it seems to find many windows that are not in the application you are using and you have no interest in.  Use the filters in The Customiser to skip these windows.  For example you can skip over all hidden windows by turning on the filter ‘Exclude Hidden Windows’.

Under certain circumstances you may also find that The Customiser does not seem to be able to find some windows.  In this case there will be a window of similar or slightly smaller dimension in the same position as the window you want.  Simply exclude the window that is preventing you from finding your window of interest.  This situation can exist when looking for maximised windows and these two windows may ’get in the way’; SHELLDLL_DefView and SysListView32.


Discovering Passwords

In many instances passwords are displayed in edit boxes as an array of *’s.  For most controls The Customiser will display the actual passwrd on its main screen.  If The Customiser does not display the password use the WM_GETTEXT message to determine the actual password.  When using this message be sure to set WPARAM to the number of characters you want to receive.  Alternatively send WM_SETPASSWORDCHAR with any character in WPARAM to alter the password character from the default ‘*’or leave WPARAM blank to remove the password character and display the actual password in the window.


Moving Controls

Software developers can use The Customiser to dynamically reposition controls and set the text of any control in real-time.  Become more productive by quickly changing screen layout without going back to your resource workshop, compiling and linking before you can see the effect of any change.

Identify the resource id of any control.

With some applications you will find that The Customiser does not seem to detect any of the windows that may appear.  This is not due to any failing of The Customiser but rather due to the implementation of the application.  In these applications the ‘windows’ have not been implemented as true windows but rather often just bitmap images of window controls that are programmed to mimic the behaviour of windows.


Retrieving Text from Owner Draw List Boxes

Determine exactly what text is contained in owner draw list boxes.  By using the message LB_GETTEXT you can see exactly what the text is rather than what is displayed with bitmaps or any other graphical representation.


Enabling Greyed Buttons

Many applications prevent access to certain areas by hiding or greying various buttons.  For example, in many applications you can not gain access until you have entered a password.  Bypass these controls using The Customiser to enable the underlying application.  This can be very useful for developers debugging the securuity aspects of their application.


Debug Invalid Short-Cut Keystrokes

Debug problems with buttons that are not responding to the correct keystrokes.  For example, you may find that you have bitmap buttons that are not responding to the appropriate shortcut keys.  The Customiser allows you to quickly check what text is really associated with the button, rather than just contained in the bitmap, without inspecting the actual resource files.


Identify Windows Resource Ids

The Customiser is indespensible for identifying the Id of any control.  If you are having troubles manipulating a control in your application you can quickly verify that the id is in fact the id you believe it to be without having to start whatever reource workshop you use and identfy in this way.  You’ll find you always want The Customiser sitting on your desktop.


Minimise Borland Whilst Compiling

With older versions, less than 5.0, of Borland and various other compilers, once you start compiling the application is effectively closed to all input.  Using The Customiser you can quickly enable the main application window allowing you to then minimise the compiler while it proceeds freeing up the desktop for you to carry on.


API Messages

Following is a list of  the API functions that are supported by The Customiser.  A brief description accompanies many of the messages but you should find that most are self explanatory.  For a more detailed discussion of the API consult your documentation on this.  The messages following have been broadly grouped into their areas of concern.


Buttons, Radio Buttons and CheckBoxes

BM_CLICK	Mimic the clicking of the checkbox

BM_GETCHECK	Retrieves the check state of a button

BM_GETIMAGE

BM_GETSTATE	Retrieves the state of a button

BM_SETCHECK	Sets the check state of a button

BM_SETIMAGE

BM_SETSTATE	Sets the highlight state of a button

BM_SETSTYLE	Changes the style of a button

BST_CHECKED

BST_FOCUS

BST_INDETERMINATE

BST_PUSHED

BST_UNCHECKED


Combo Box Messages

CB_ADDSTRING	Adds a string to the list box of a combo box

CB_DELETESTRING	Deletes a string in the list box of a combo box

CB_DIR	Adds filenames to the list box of a combo box

CB_FINDSTRING	Finds exact string in the list box of a combo box

CB_FINDSTRINGEXACT	Finds prefix string in the list box of a combo box

CB_GETCOUNT	Gets the number of list-box items in a combo box

CB_GETCURSEL	Gets index of selected list-box item in combo box

CB_GETDROPPEDSTATE	Determines if list box of combo box is visible

CB_GETDROPPEDWIDTH

CB_GETEDITSEL	Gets position of a selection in an edit control

CB_GETEXTENDEDUI	Determines if combo box has extended interface

CB_GETHORIZONTALEXTENT

CB_GETITEMDATA	Retrieves value associated with combo-box item

CB_GETITEMHEIGHT	Retrieves the height of list items in a combo box

CB_GETLBTEXT	Gets string from the list box of a combo box

CB_GETLBTEXTLEN	Gets length of string in list-box of combo box

CB_GETLOCALE

CB_GETTOPINDEX

CB_INITSTORAGE

CB_INSERTSTRING	Inserts a string into the list box of a combo box

CB_LIMITTEXT	Limits amount of edit-control text in a combo box

CB_MSGMAX

CB_RESETCONTENT	Removes all items from the list box of a combo box

CB_SELECTSTRING	Selects matching string in list box of combo box

CB_SETCURSEL	Selects indexed string in list box of combo box

CB_SETDROPPEDWIDTH

CB_SETEDITSEL	Selects characters in edit control of combo box

CB_SETEXTENDEDUI	Sets the default or extended user interface

CB_SETHORIZONTALEXTENT

CB_SETITEMDATA	Associates a value with combo-box item

CB_SETITEMHEIGHT	Sets the height of list items in a combo box

CB_SETLOCALE

CB_SETTOPINDEX

CB_SHOWDROPDOWN	Shows or hides the list box of a combo box

DM_GETDEFID	Gets the identifier of the default push button

DM_SETDEFID	Sets the default push button of a dialog box

DM_REPOSITION


Edit Boxes

EM_CANUNDO	Determines if edit-control operation can be undone

EM_CHARFROMPOS

EM_EMPTYUNDOBUFFER	Resets (clears) undo flag of edit control

EM_FMTLINES	Sets soft line break characters on or off

EM_GETFIRSTVISIBLELINE	Determines topmost line in an edit control

EM_GETHANDLE	Gets handle of memory for multiline edit control

EM_GETLIMITTEXT

EM_GETLINE	Retrieves line from multiline edit control

EM_GETLINECOUNT	Retrieves number of lines in an MLE

EM_GETMARGINS

EM_GETMODIFY	Checks whether edit-control contents have changed

EM_GETPASSWORDCHAR	Retrieves edit-control password character

EM_GETSEL	Gets position of current edit-control selection

EM_GETTHUMB

EM_GETWORDBREAKPROC	Retrieves the edit-control wordwrap function

EM_LIMITTEXT	Limits the amount of text in an edit control

EM_LINEFROMCHAR	Retrieves a line number from a character index

EM_LINEINDEX	Retrieves character index of edit-control line

EM_LINELENGTH	Retrieves length of line in edit control

EM_LINESCROLL	Scrolls text of a multiline edit control

EM_POSFROMCHAR

EM_REPLACESEL	Replaces the current selection in an edit control

EM_SCROLL

EM_SCROLLCARET

EM_SETMARGINS

EM_SETMODIFY	Sets or clears edit-control modification flag

EM_SETPASSWORDCHAR	Sets or removes edit-control password character

EM_SETREADONLY	Sets the read-only state of an edit control

EM_SETSEL	Selects text in a multiline edit control

EM_UNDO	Undoes the last edit-control operation


List Box Messages

LB_ADDFILE

LB_ADDSTRING	Adds a string to a list box

LB_DELETESTRING	Deletes a string in a list box

LB_DIR	Adds a list of filenames to a list box

LB_FINDSTRING	Finds a prefix string in a list box

LB_FINDSTRINGEXACT	Finds an exact string in a list box

LB_GETANCHORINDEX

LB_GETCARETINDEX	Gets index of list-box item with focus rectangle

LB_GETCOUNT	Retrieves the number of items in a list box

LB_GETCURSEL	Retrieves index of selected item in a list box

LB_GETHORIZONTALEXTENT	Retrieves the horizontal extent of a list box

LB_GETITEMDATA	Retrieves the value associated with list-box item

LB_GETITEMHEIGHT	Determines the height of items in a list box

LB_GETLOCALE

LB_GETSEL	Retrieves the selection state of an item

LB_GETSELCOUNT	Retrieves the count of selected list-box items

LB_GETSELITEMS	Lists item numbers of selected list-box items

LB_GETTEXT	Retrieves a string from a list box

LB_GETTEXTLEN	Retrieves the length of a string in a list box

LB_GETTOPINDEX	Retrieves index of first visible list-box item

LB_INITSTORAGE

LB_INSERTSTRING	Inserts a string into a list box

LB_ITEMFROMPOINT

LB_MSGMAX

LB_RESETCONTENT	Removes all items from a list box

LB_SELECTSTRING	Selects a matching string in a list box

LB_SELITEMRANGE	Selects consecutive items in a list box

LB_SELITEMRANGEEX

LB_SETANCHORINDEX

LB_SETCARETINDEX	Sets the focus rectangle in a list box

LB_SETCOLUMNWIDTH	Sets the width of columns in a list box

LB_SETCOUNT

LB_SETCURSEL	Selects an indexed string in a list box

LB_SETHORIZONTALEXTENT	Sets the horizontal extent of a list box

LB_SETITEMDATA	Associates a value with a list-box item

LB_SETITEMHEIGHT	Sets the height of items in a list box

LB_SETLOCALE

LB_SETSEL	Selects a string in a multiple-selection list box

LB_SETTOPINDEX	Ensures that a list-box item is visible


Icon Resources

STM_GETICON	Gets icon handle associated with icon resource

STM_GETIMAGE

STM_MSGMAX

STM_SETICON	Associates icon handle with icon resource

STM_SETIMAGE


General Windows Messages

WM_ACTIVATE	Indicates a change in the activation state

WM_ACTIVATEAPP	Notifies applications when a new task is activated

WM_AFXFIRST

WM_AFXLAST

WM_APP

WM_ASKCBFORMATNAME	Retrieves the name of the clipboard format

WM_CANCELJOURNAL

WM_CANCELMODE	Notifies a window to cancel internal modes

WM_CHANGECBCHAIN	Notifies clipboard viewer of removal from chain

WM_CHAR	Passes keyboard events to focus window

WM_CHARTOITEM	Provides list-box keystrokes to owner window

WM_CHILDACTIVATE	Notifies a child window of activation

WM_CLEAR	Clears an edit control or combo box

WM_CLOSE	Signals a window or application to terminate

WM_COMMAND	Specifies a command message

WM_COMMNOTIFY	Notifies a window about the status of its queues

WM_COMPACTING	Indicates a low memory condition

WM_COMPAREITEM	Determines position of combo-box or list-box item

WM_CONTEXTMENU

WM_COPY	Copies a selection to the clipboard

WM_COPYDATA

WM_CTLCOLOR	Indicates that a control is about to be drawn

WM_CTLCOLORBTN

WM_CTLCOLORDLG

WM_CTLCOLOREDIT

WM_CTLCOLORLISTBOX

WM_CTLCOLORMSGBOX

WM_CTLCOLORSCROLLBAR

WM_CTLCOLORSTATIC

WM_CUT	Deletes a selection and copies it to the clipboard

WM_DDE_ACK	Acknowledges the receipt of a DDE transaction

WM_DDE_ADVISE	Starts an advise loop with a DDE server

WM_DDE_DATA	Passes a data item to a DDE client

WM_DDE_EXECUTE	Passes a command to a DDE server

WM_DDE_INITIATE	Initiates a DDE conversation

WM_DDE_POKE	Sends an unsolicited data item to a server

WM_DDE_REQUEST	Requests value of a data item from a DDE server

WM_DDE_TERMINATE	Terminates a DDE conversation

WM_DDE_UNADVISE	Ends a DDE advise loop

WM_DEADCHAR	Indicates when a dead key is pressed

WM_DESTROY	Indicates window is about to be destroyed

WM_DESTROYCLIPBOARD	Notifies owner when clipboard is emptied

WM_DEVMODECHANGE	Indicates when device-mode settings are changed

WM_DISPLAYCHANGE

WM_DRAWCLIPBOARD	Indicates when clipboard contents are changed

WM_DROPFILES	Indicates when a file is dropped

WM_ENABLE	Indicates when enable state of window is changing

WM_ENDSESSION	Indicates whether the Windows session is ending

WM_ENTERIDLE	Indicates a modal dialog box or menu is idle

WM_ENTERMENULOOP

WM_ENTERSIZEMOVE

WM_ERASEBKGND	Indicates when background of window needs erasing

WM_EXITMENULOOP

WM_EXITSIZEMOVE

WM_FONTCHANGE	Indicates a change in the font-resource pool

WM_GETDLGCODE	Allows processing of control input

WM_GETFONT	Retrieves the font that a control is using

WM_GETHOTKEY

WM_GETICON

WM_GETTEXT	Copies the text that corresponds to a window

WM_GETTEXTLENGTH	Determines length of text associated with a window

WM_HANDHELDFIRST

WM_HANDHELDLAST

WM_HOTKEY

WM_HSCROLL	Indicates a click in a horizontal scroll bar

WM_HSCROLLCLIPBOARD	Prompts owner to scroll clipboard contents

WM_ICONERASEBKGND	Notifies minimized window to fill icon background

WM_IME_COMPOSITION

WM_IME_ENDCOMPOSITION

WM_IME_KEYLAST

WM_IME_STARTCOMPOSITION

WM_INITDIALOG	Initializes a dialog box

WM_INITMENU	Indicates when a menu is about to become active

WM_INITMENUPOPUP	Indicates when a pop-up menu is being created

WM_KEYDOWN	Indicates when a nonsystem key is pressed

WM_KEYFIRST

WM_KEYLAST

WM_KEYLAST

WM_KEYUP	Indicates when a nonsystem key is released

WM_KILLFOCUS	Indicates window is about to lose input focus

WM_LBUTTONDBLCLK	Indicates double-click of left mouse button

WM_LBUTTONDOWN	Indicates when left mouse button is pressed

WM_LBUTTONUP	Indicates when left mouse button is released

WM_MBUTTONDBLCLK	Indicates double-click of middle mouse button

WM_MBUTTONDOWN	Indicates when middle mouse button is pressed

WM_MBUTTONUP	Indicates when middle mouse button is released

WM_MDIACTIVATE	Activates a new MDI child window

WM_MDICASCADE	Arranges MDI child windows in a cascade format

WM_MDIDESTROY	Closes an MDI child window

WM_MDIGETACTIVE	Retrieves data about the active MDI child window

WM_MDIICONARRANGE	Arranges minimized MDI child windows

WM_MDIMAXIMIZE	Maximizes an MDI child window

WM_MDINEXT	Activates the next MDI child window

WM_MDIREFRESHMENU

WM_MDIRESTORE	Prompts an MDI client to restore a child window

WM_MDITILE	Arranges MDI child windows in a tiled format

WM_MENUCHAR	Indicates when unknown menu mnemonic is pressed

WM_MENUSELECT	Indicates when a menu item is selected

WM_MOUSEACTIVATE	Indicates a mouse click in an inactive window

WM_MOUSEFIRST

WM_MOUSELAST

WM_MOUSEMOVE	Indicates mouse-cursor movement

WM_MOVE	Indicates the position of a window has changed

WM_NCACTIVATE	Changes the active state of a nonclient area

WM_NCCALCSIZE	Calculates the size of a window's client area

WM_NCCREATE	Indicates a nonclient area is being created

WM_NCDESTROY	Indicates when nonclient area is being destroyed

WM_NCHITTEST	Indicates mouse-cursor movement

WM_NCLBUTTONDBLCLK	Indicates non-client left button double-click

WM_NCLBUTTONDOWN	Indicates left button pressed in nonclient area

WM_NCLBUTTONUP	Indicates left button released in nonclient area

WM_NCMBUTTONDBLCLK	Indicates middle button nonclient double-click

WM_NCMBUTTONDOWN	Indicates middle button pressed in nonclient area

WM_NCMBUTTONUP	Indicates middle button released in nonclient area

WM_NCMOUSEMOVE	Indicates mouse-cursor movement in nonclient area

WM_NCPAINT	Indicates a window's frame needs painting

WM_NCRBUTTONDBLCLK	Indicates right button nonclient double-click

WM_NCRBUTTONDOWN	Indicates right button pressed in nonclient area

WM_NCRBUTTONUP	Indicates right button released in nonclient area

WM_NEXTDLGCTL	Sets the focus to a different dialog box control

WM_NEXTMENU

WM_PAINT	Indicates a window frame needs painting

WM_PAINTICON

WM_PALETTECHANGED	 Indicates focus-window has realized its palette

WM_PALETTEISCHANGING	Informs windows about change to palette

WM_PARENTNOTIFY	Notifies parent of child-window activity

WM_PASTE 	Inserts clipboard data into an edit control

WM_PENWINFIRST

WM_PENWINLAST

WM_POWER	Indicates the system is entering suspended mode

WM_PRINT

WM_PRINTCLIENT

WM_QUERYDRAGICON	Requests a cursor handle for a minimized window

WM_QUERYENDSESSION	Requests that the Windows session be ended

WM_QUERYNEWPALETTE	Allows a window to realize its logical palette

WM_QUERYOPEN	Requests that a minimized window be restored

WM_QUEUESYNC	Delimits CBT messages

WM_QUIT	Requests that an application be terminated

WM_RBUTTONDBLCLK	Indicates a double-click of right mouse button

WM_RBUTTONDOWN	Indicates when the right mouse button is pressed

WM_RBUTTONUP	Indicates when the right mouse button is released

WM_RENDERALLFORMATS	Notifies owner to render all clipboard formats

WM_RENDERFORMAT	Notifies owner to render particular clipboard data

WM_SETCURSOR	Displays the appropriate mouse cursor shape

WM_SETFOCUS	Indicates when a window has gained input focus

WM_SETFONT	Sets the font for a control

WM_SETHOTKEY

WM_SETICON

WM_SETREDRAW	Allows or prevents redrawing in a window

WM_SETTEXT	Sets the text of a window

WM_SHOWWINDOW	Indicates a window is about to be hidden or shown

WM_SIZE	Indicates a change in window size

WM_SIZECLIPBOARD	Indicates a change in clipboard size

WM_SPOOLERSTATUS	Indicates when a print job is added or removed

WM_STYLECHANGED

WM_STYLECHANGING

WM_SYSCHAR	Indicates when a System-menu key is pressed

WM_SYSCOLORCHANGE	Indicates when a system color setting is changed

WM_SYSCOMMAND	Indicates when a System-command is requested

WM_SYSDEADCHAR	Indicates when a system dead key is pressed

WM_SYSKEYDOWN	Indicates that ALT plus another key was pressed

WM_SYSKEYUP	Indicates that ALT plus another key was released

WM_SYSTEMERROR	Indicates that a system error has occurred

WM_TIMECHANGE	Indicates that the system time has been set

WM_UNDO	Undoes the last operation in an edit control

WM_USER	Indicates a range of message values

WM_VKEYTOITEM	Provides list-box keystrokes to owner window

WM_VSCROLL	Indicates a click in a vertical scroll bar

WM_VSCROLLCLIPBOARD	Prompts the owner to scroll clipboard contents

WM_WININICHANGE	Notifies applications of change to WIN.INI


Command Line Arguments

The following arguments are supported on the command line.  These can be used in any shortcut you may have to the Customiser.

/TRAY	Start The Customiser minimized in the Windows tray.

Note that a hidden version of The Customiser is available.